在odoo中,以銷售模組為例,建立每張銷售訂單時都會自動編號,讓單號不會有重複的情況發生,單號除了識別用,也可以用來在不同模組中查找相對應的單據,在odoo中有許多應用的情境。
因此今天就要來介紹如何在程式中設定單號採自動編號的方式產生,下面來詳細介紹。
以銷售模組為例,範例如下:
<odoo>
<data noupdate="1">
<!-- Sequences for sale.order -->
<record id="seq_sale_order" model="ir.sequence">
<field name="name">Sales Order</field>
<field name="code">sale.order</field>
<field name="prefix">S</field>
<field name="padding">5</field>
<field name="company_id" eval="False"/>
</record>
</data>
</odoo>
以上參數都設置完後就設定好序號的data了,接下來介紹如何在py檔應用。
範例如下:
vals['name'] = self.env['ir.sequence'].next_by_code('sale.order')
根據範例可以發現,next_by_code
傳入的參數為前面data中設定的code,只要替換掉該參數,即可取出需要的序號,取出後可將該筆資料的name直接預設為此序號,再走原生的create(),即可在創建單據時自動編碼單號,避免人員手動輸入造成單號重複。
序號的相關設置也可在系統上的「設定/序號」來做查看,如下圖。
關於序號就先介紹到這邊,讓我們明天見。